'''
Created on Nov 14, 2013

@author: root
'''
import ej3Dijkstra.grafoDijkstrado
import colecciones.DefinicionDeGrafo.vertice
import mejorCaminoDfsAdap

def main():

    print "Ubicando jugadores..."
    jugadores=ej3Dijkstra.grafoDijkstrado.GrafoDijkstrado()
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(1,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(2,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(3,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(4,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(5,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                        )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(6,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(7,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(8,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(9,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(10,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                        )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(11,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.agregarVertice(
             colecciones.DefinicionDeGrafo.vertice.Vertice(12,
                      colecciones.listaEnlazada.ListaEnlazada()
                                )
                      )
    jugadores.conectar(jugadores.vertice(0), jugadores.vertice(1), 0.9)
    jugadores.conectar(jugadores.vertice(0), jugadores.vertice(2), 0.7)
    jugadores.conectar(jugadores.vertice(1), jugadores.vertice(4), 0.1)
    jugadores.conectar(jugadores.vertice(1), jugadores.vertice(2), 0.6)
    jugadores.conectar(jugadores.vertice(2), jugadores.vertice(3), 0.5)
    jugadores.conectar(jugadores.vertice(2), jugadores.vertice(5), 0.1)
    jugadores.conectar(jugadores.vertice(2), jugadores.vertice(11), 0.2)
    jugadores.conectar(jugadores.vertice(3), jugadores.vertice(0), 0.9)
    jugadores.conectar(jugadores.vertice(3), jugadores.vertice(2), 1)
    jugadores.conectar(jugadores.vertice(3), jugadores.vertice(5), 0.8)
    jugadores.conectar(jugadores.vertice(4), jugadores.vertice(11), 0.7)
    jugadores.conectar(jugadores.vertice(5), jugadores.vertice(4), 0.3)
    jugadores.conectar(jugadores.vertice(5), jugadores.vertice(11), 0.6)
    print "...listo"
    recorrido=mejorCaminoDfsAdap.MejorCaminoDfsAdap()
    camino=colecciones.listaEnlazada.ListaEnlazada()
    prob=recorrido.buscar_1_camino(jugadores, jugadores.vertice(0), jugadores.vertice(11),camino)
    print "Estrategia con mas probabilidad de gol:"
    rec=camino.recorredor()
    rec.comenzar()
    texto="Jugador"
    while not rec.fin():
        texto+=rec.elemento().__str__()
        rec.proximo()
        if not rec.fin():texto+=" pasa a Jugador"
    texto+=" Gol!"
    print texto
    print "Probabilidad de la estrategia:"
    print prob

if __name__ == '__main__':
    main()